package com.xinye.opengl

import android.opengl.GLSurfaceView
import javax.microedition.khronos.egl.EGLConfig
import javax.microedition.khronos.opengles.GL10

/**
 * https://www.cnblogs.com/bluestorm/p/6905044.html
 */
class GLRenderer : GLSurfaceView.Renderer {
    override fun onDrawFrame(gl: GL10?) {
        /**
         * 我们先啥也不干，就针对画板“刷一次油漆”，把画板背景颜色设置为红色，
         * glClear(GL10.GL_COLOR_BUFFER_BIT)的意思是，使用glClearColor函数所设置的颜色进行清屏。
         */
        gl?.glClear(GL10.GL_COLOR_BUFFER_BIT)
    }

    override fun onSurfaceChanged(gl: GL10?, width: Int, height: Int) {
        // 设置视角窗口大小glViewport，其实就是决定绘制的矩形区域的大小
        gl?.glViewport(0, 0, width, height)
    }


    override fun onSurfaceCreated(gl: GL10?, config: EGLConfig?) {
        /**
         * glClearColor函数是设置清屏的颜色，参数分别对应RGBA，
         * 我们设置为红色就是glClearColor(1f, 0f, 0f, 0f);
         * 为啥红色是1呢？而不是我们平时所熟知的255，
         * 请注意：在使用OpenGL时，很多地方采用的参数变化范围都是从0到1，比如在贴纹理的时候选择图片区域也是[0,1]
         */
        gl?.glClearColor(1.0f,0f,0f,0f)
    }
}